Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update version to 0.11.0 #1331

Merged
merged 2 commits into from
Oct 11, 2023
Merged

Update version to 0.11.0 #1331

merged 2 commits into from
Oct 11, 2023

Conversation

eeeebbbbrrrr
Copy link
Contributor

@eeeebbbbrrrr eeeebbbbrrrr commented Oct 11, 2023

Welcome to pgrx v0.11.0. It's a new "major" release with some new features, a faster "build.rs", and some bugfixes.

As always, please update by running cargo install cargo-pgrx --version 0.11.0 --locked and update your extension crate Cargo.toml files accordingly.

What's Changed

Faster Buildings

@workingjubilee did some work to improve build times. As measured on their computer against cargo check, it's roughly a quarter faster. In doing so, the generated "bindings.rs" files look a little different and our "build.rs" has been cleaned up a bit.

Pure Rust implementation for PgList

@workingjubilee did a tremendous amount of work creating a proper wrapper around Postgres' internal List type, called PgList.

Some background here is that we intend to add the "dynamic function call" work (see below) to PL/Rust. In doing that work, use of Postgres' List type is pretty important and pgrx' existing implementation was a) mostly in the cshim, and b) just not very-good-and-sound. Considering (b) and also that PL/Rust isn't able to use anything from pgrx' chsim (a), @workingjubilee set out to make a proper Rust wrapper/implementation of Postgres' List type.

More Bindings

We've added more Postgres internals headers to the pgrx-pg-sys crate:

Dynamic Function Calling

pgrx now allows calling any SQL-defined function (ie, via CREATE FUNCTION) in a (mostly) Rusty way with the new dynamic function calling support. Some documentation around this feature can be found in the sources, here and in the unit tests.

As mentioned above, this feature will be exposed in PL/Rust soon. However, it's still an extremely powerful feature for pure pgrx extensions as it allows calling another function directly, with runtime type safety checks, without incurring any Spi overhead.

cargo pgrx install --sudo

Sometimes cargo-pgrx install can be tough to work with if targeting a package manager-managed Postgres installation as the various extension directories are owned by root. cargo pgrx install --sudo fixes that by copying the files as root. The build, which is typically done as a regular user, is still run by that user -- only the file copying is run with sudo.

Miscellaneous Work

Thanks!

Thanks to all the contributors! We appreciate the PRs and testing. And we especially like hearing about what you're building with pgrx.

Full Changelog: v0.10.2...v0.11.0

@@ -30,7 +30,7 @@ else
./update-versions.sh "${NEW_VERSION}" || exit $?

# sanity check the diffs, but not Cargo.lock files cuz ugh
git diff -- . ':(exclude)Cargo.lock'
# git diff -- . ':(exclude)Cargo.lock'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have absolutely no idea why, but doing this git diff command would move me back to the develop branch causing the git commit below to go there.

Computers were a mistake. I've never seen the script behave this way before. I could be going crazy, but this happened 3 times.

Copy link
Member

@workingjubilee workingjubilee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

Yeah the prepare-release.sh is a bit flaky/doing a bit much, right now.

@eeeebbbbrrrr
Copy link
Contributor Author

Alrighty, gonna merge and finish the release. Thanks @workingjubilee!

@eeeebbbbrrrr eeeebbbbrrrr merged commit 6bbe8ff into develop Oct 11, 2023
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants